/*
算法2-9 一元多项式加法运算
分数 20
作者 陈越
单位 浙江大学

请编写程序，求两个多项式的和。
输入格式：

输入给出两个多项式的信息。对每个多项式，首先在一行中给出其非零项的个数 n，随后按指数递减的顺序给出 n 对 系数 指数，其中 系数 为实数，绝对值均不超过 1000，指数 为不超过 1000 的非负整数。注意：零多项式对应的 n 为 0。
输出格式：

按指数递减的顺序输出两个多项式的和的每个非零项，每项占一行，格式为 系数 指数，其中 系数 输出小数点后 2 位。注意：零多项式不输出任何内容。
输入样例：

3
9 12 15 8 3 2
4
26 19 -4 8 -13 6 82 0

输出样例：

26.00 19
9.00 12
11.00 8
-13.00 6
3.00 2
82.00 0
*/

#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;

void input(vector<double> &polynomial, int n) {
    for (int i = 0; i < n; ++i) {
        int exp;
        double coef;
        cin >> coef >> exp;
        polynomial[exp] = coef;
    }
}

vector<double> add(const vector<double> &a, const vector<double> &b) {
    int n = 1 + a.size() > b.size() ? a.size() : b.size();
    vector<double> c(n, 0);
    for (int i = 0; i < n; ++i) {
        c[i] = a[i] + b[i];
    }
    return c;
}

void print(const vector<double> &polynomial) {
    // int count = 0;
    // for (int i = polynomial.size() - 1; i >= 0; --i) {
    //     if (polynomial[i] != 0) {
    //         ++count;
    //     }
    // }

    // cout << count << endl;
    for (int i = polynomial.size() - 1; i >= 0; --i) {
        if (polynomial[i] != 0) {
            cout << fixed << setprecision(2) << polynomial[i] << " " << i << endl;
        }
    }
}

int main() {
    int n;
    cin >> n;
    vector<double> a(1001, 0);
    input(a, n);

    cin >> n;
    vector<double> b(1001, 0);
    input(b, n);

    vector<double> c = add(a, b);
    print(c);

    return 0;
}